package com.wudl.govern.db;

import com.wudl.govern.db.core.DbColumn;
import com.wudl.govern.db.core.DbTable;
import org.springframework.jdbc.core.RowMapper;

/**
 * @author ：wudl
 * @date ：Created in 2022-04-04 0:02
 * @description：表数据查询接口
 * @modified By：
 * @version: 1.0
 */

public interface DbDialect {

    RowMapper<DbTable> tableMapper();

    RowMapper<DbColumn> columnMapper();

    /**
     * 获取指定表的所有列
     *
     * @param dbName
     * @param tableName
     * @return
     */
    String columns(String dbName, String tableName);

    /**
     * 获取数据库下的 所有表
     *
     * @param dbName
     * @return
     */
    String tables(String dbName);

    /**
     * 构建 分页 sql
     *
     * @param sql
     * @param offset
     * @param count
     * @return
     */
    String buildPaginationSql(String sql, long offset, long count);

    /**
     * 包装 count sql
     *
     * @param sql
     * @return
     */
    String count(String sql);
}